@skarab/detect-package-manager
Detects which package manager (bun, pnpm, yarn, npm) is used based on the current working directory.
Features
- Support
packageManager
field in package.json
. - Detect PM agent version from lock file name, format or version.
- Fully typed and well tested!
TODO
- Resolve external lock file such as
lockfile-directory
in .npmrc
(PR welcome).
Installation
pnpm add @skarab/detect-package-manager
Usage
Detect the PM agent from the current working directory.
import { detectAgent } from '@skarab/detect-package-manager';
const agent = await detectAgent();
console.log(agent);
Detect the PM agent from a provided directory.
import { detectAgent } from '@skarab/detect-package-manager';
const agent = await detectAgent('path/to/yarn/project');
console.log(agent);
Detect all installed and known agents.
import { detectInstalledAgents } from '@skarab/detect-package-manager';
const agents = await api.detectInstalledAgents();
console.log(agents.has('pnpm'));
Known agents
- bun Bun is a fast all-in-one JavaScript runtime.
- pnpm Fast, disk space efficient package manager.
- yarn Yarn is a package manager that doubles down as project manager.
- npm A JavaScript package manager.
Related
Scaffolded with @skarab/skaffold